
mod utils;
mod basic;
mod func;

mod home;
mod file;
mod task;

mod port;
mod shell;
mod room;

#[cfg(test)]
mod test;


// pub use
pub use futures_util::{
    FutureExt,
    SinkExt,
    Stream,
    StreamExt,
    stream::SplitSink,
    stream::SplitStream,
    stream::FuturesUnordered,
    stream::iter as stream_iter,
};

pub use utils::{App, AppTrait, AppRes, StreamStatus};

pub use func::{
    cli_app,
    cli_appres,
    cli_app_stream,
    msg_func_none,
    msg_func_print
};

pub use basic::{
    WPath,
    WStreamReader
};

pub use file::{
    download::AppFileDownload,
    tree::AppFileTree,
    upload::AppFileUpload,
    utils::FileUDArgs,
};

pub use task::utils::{
    timer::TimerApp,
    args::WTaskSubmitMetaBase,
    meta::TaskAddMeta,
    meta::CmdArgs,
    meta::CmdRet,
    meta::TaskSubmitMeta,
    meta::WTASK_INSTALL_FILES
};
pub use task:: {
    cmd::AppCmd,
    submit::AppTaskSubmit,
    add::AppTaskAdd,
    check::AppTaskCheck,
    download::AppTaskDownload,
    archv::AppTaskArchv,
};

pub use home::AppHome;
pub use room::AppRoom;
pub use port::AppPort;
